package com.ruoyi.project.storage.mapper;

import com.ruoyi.project.storage.domain.User;

import java.util.List;
import java.util.Map;

/**
 * 客户Mapper接口
 *
 * @author mengyuanqing
 * @date 2020/5/1
 */
public interface UserMapper {
    /**
     * 查询客户列表
     *
     * @param user 客户
     * @return 客户集合
     */
    List<User> selectUserList(User user);

    /**
     *新增客户列表
     *
     * @param user 客户
     * @return 结果
     */
    int insertUser(User user);

    /**
     * 修改客户列表
     *
     * @param user 客户
     * @return 结果
     */
    int updateUser(User user);

    /**
     * 删除客户列表
     *
     * @param map userId；需要删除的客户userId
     *            user：操作人
     *            time：操作时间
     * @return 结果
     */
    int deleteUserByIds(Map<String, Object> map);

    /**
     * 重置客户密码
     *
     * @param map userId：需要重置密码的客户
     *            user：操作人
     *            time：操作时间
     * @return
     */
    int updateUserByIds(Map<String, Object> map);

    /**
     *
     * @param map ids:需要启用的数据ID
     *            operate:操作类型("enable":启用；"disable":停用)
     *            user:操作人
     *            time:操作时间
     * @return 结果
     */
    int operateUserByIds(Map<String, Object> map);

    /**
     * 获取当前用户积分
     *
     * @param userId 用户id
     * @return 当前积分
     */
    Long selectCurrentPoints(Long userId);

    /**
     * 校验用户名
     *
     * @param userName 用户名
     * @return 结果
     */
    int checkUserNameUnique(String userName);

    /**
     * 校验电话
     *
     * @param phonenumber 电话
     * @return 结果
     */
    User checkPhoneUnique(String phonenumber);

    /**
     * 校验email
     *
     * @param email 邮箱号
     * @return 结果
     */
    User checkEmailUnique(String email);

    /**
     * 更新用户密码
     *
     * @param user 用户信息
     * @return 结果
     */
    int updateUserPassword(User user);

    /**
     * 积分扣除
     *
     * @param user 对象
     * @return 结果
     */
    int operateUserPoints(User user);
}
